using System.Web;
using System.Xml;
using System;

/*	-----------------------------------------------------------------------	
	Copyright:	umlungu consulting (pty) ltd
	Author:		Alan Benington	
	Started:	2006-07-18	
	Status:		release	
	Version:	1.0.4
	Build:		20060718
	License:	GNU General Public License
	-----------------------------------------------------------------------	*/
	
namespace umlungu.engineX.provisionerX {
	/// <summary>Description of the enumeration</summary>
	public enum x_provisionerID {
		/// <summary>identifier description</summary>
	    idOne = 1,
		/// <summary>identifier description</summary>
	    idTwo = 2,
		/// <summary>identifier description</summary>
	    idThree = 3,
		/// <summary>identifier description</summary>
		idFour = 4
	}
	/// <summary>
	/// Description of the x_provisioner class.
	/// <para>Additional information about the class</para>
	/// </summary>
	public class x_provisioner {
		#region Invisible properties
		//private string thisname;
		#endregion

		#region Visible properties
		private string property;
		/// <summary>Definiton of the property</summary>
		/// <value>Description of the value of the property</value>
		public string Property {
			get { return property; }
			set { property = value; }
		}
		#endregion

		#region Constructors/Destructors
		/// <overloads>Constructor</overloads>
		/// <summary>Default constructor</summary>
		public x_provisioner() {
		}
		/// <summary>Constructor description</summary>
		/// <param name="prop">Brief description of the parameter</param>
		public x_provisioner(string prop) {
			property = prop;
		}
		#endregion

		#region Public methods
		/// <summary>
		/// Login the current webservice (url)
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		public XmlNode Login(x_authoriserID Type, string Username, string Password) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.Login(Username, Password);
		}
		/// <summary>
		/// Gets account information from an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		public XmlNode GetContract(x_authoriserID Type, string Username, string Password) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.GetContract(Username, Password);
		}
		/// <summary>
		/// Gets account information from an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		public XmlNode GetAccount(x_authoriserID Type, string Username, string Password) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.GetAccount(Username, Password);
		}
		/// <summary>
		/// Gets information about a service associated with an account from an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		/// <param name="ServiceID">The identifier of the service</param>
		public XmlNode GetAccountService(x_authoriserID Type, string Username, string Password, int ServiceID) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.GetAccountService(Username, Password, ServiceID);
		}
		/// <summary>
		/// Gets information about services associated with an account from an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		public XmlNode GetAccountServices(x_authoriserID Type, string Username, string Password) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.GetAccountServices(Username, Password);
		}
		/// <summary>
		/// Gets account services information from an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		public XmlNode GetServices(x_authoriserID Type) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.GetServices();
		}
		/// <summary>
		/// Adds a service to an account within an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		/// <param name="ServiceID">The service identifier</param>
		public XmlNode AddService(x_authoriserID Type, string Username, string Password, int ServiceID) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.AddService(Username, Password, ServiceID);
		}
		/// <summary>
		/// Adds a service to an account within an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		/// <param name="ServiceID">The service identifier</param>
		public XmlNode AddService(x_authoriserID Type, string Username, string Password, int ServiceID, string ParameterName, string ParameterValue) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.AddService(Username, Password, ServiceID, ParameterName, ParameterValue);
		}
		/// <summary>
		/// Adds a voucher to a service in an account within an account-based system
		/// </summary>
		/// <param name="Type">The Type of Authoriser (account system)</param>
		/// <param name="Username">The user identity</param>
		/// <param name="Password">The user password</param>
		/// <param name="ServiceID">The service identifier</param>
		/// <param name="Voucher">The amount of the voucher</param>
		public XmlNode AddVoucher(x_authoriserID Type, string Username, string Password, int ServiceID, double Voucher) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.AddVoucher(Username, Password, ServiceID, Voucher);
		}
		#endregion

		#region Test methods
		/// <overloads>Description of the overloaded example method</overloads>
		/// <summary>
		/// Test method - does nothing
		/// </summary>
		public string Test(x_authoriserID Type) {
			x_authoriser authx = new x_authoriser(Type);
			return authx.Login("alanben", "9874").OuterXml;
		}
		/// <summary>
		/// Test method - 
		/// </summary>
		/// <param name="parameter">Brief description of the parameter</param>
		public void Test(string parameter) {
		}
		/// <summary>
		/// Test method - 
		/// </summary>
		/// <param name="parameter">Brief description of the parameter</param>
		public void Test(int parameter) {
		}
		#endregion
		
		#region Protected methods
		/// <summary>
		/// Description of this method
		/// </summary>
		protected void _Example() {
		}
		#endregion
				
		#region Private methods
		/// <summary>
		/// Description of this method
		/// </summary>
		private void example() {
		}
		#endregion
	}
}
